The present invention relates to a record medium, an information processing apparatus, and a method, in particular to, those that allow a hardware device necessary for processing information to be easily changed or modified.
In addition, the present invention relates to a record medium, an information processing apparatus, a method that allow a current process to be quickly restored from an abnormality.
FIG. 1 shows an example of the functional structure of an encoder 10 that composes a delivery side apparatus of a conventional music delivery service system (an example of the structure of a program for an encoding process). The delivery side apparatus of the music delivery service system comprises the encoder 10, a controlling terminal unit (not shown), and a server (not shown). The controlling terminal unit controls the encoding process of the encoder 10. The server supplies music data that is encoded (hereinafter, referred to as PCM (Pulse Code Modulation) non-compressed music data) to the encoder 10, stores music data encoded by the encoder 10 (hereinafter, this data is referred to as PCM compressed music data), and delivers the PCM compressed music data to a user (reception side) of the music delivery service.
The encoder 10 contains hardware devices that are a (first) network card, a (second) network card, and an encode card. The first network card controls a communication with an alarm LAN (alarm Local Area network) to which control data for controlling the encoding process is transferred. The second network card controls a communication with a medium LAN to which PCM non-compressed music data and PCM compressed music data (hereinafter, when it is not necessary to distinguish them, they are simply referred to as music data). The encode card executes the encoding process.
The program for the encoding process shown in FIG. 1 is composed of five process portions (elements denoted by solid line boxes) that are a control data inputxe2x80x94output process portion 11, a network card driver process portion 12, a main process portion 13, a network card driver process portion 14, and an encode card driver process portion 15. Each process portion is composed of an executable program. Each process portion manages data areas (such as buffers and registers). Each process portion is independently executed.
The control data inputxe2x80x94output process portion 11 communicates with the main process portion 13. The control data inputxe2x80x94output process portion 11 receives various commands for the encoding process from the controlling terminal unit through the network card driver process portion 12 and outputs the received commands to the main process portion 13. In addition, the control data inputxe2x80x94output process portion 11 outputs messages supplied from the main process portion 13 (the messages are for example a message that represents that the encoding process has been successfully completed and an error message that represents that the encoding process has failed) to the controlling terminal unit through the network card driver process portion 12. When it is not necessary to distinguish commands and error messages exchanged between the control data inputxe2x80x94output process portion 11 and the main process portion 13, they are simply referred to as control data.
The main process portion 13 receives for example PCM non-compressed music data from the server (not shown) through the network card driver process portion 14. The network card driver process portion 14 supplies the received PCM non-compressed music data to the encode card through the encode card driver process portion 15. In addition, the main process portion 13 controls the encode card through the encode card driver process portion 15 so as to execute the encoding process corresponding to control data supplied from the control data inputxe2x80x94output process portion 11. In this example, the encode card executes an encoding process corresponding to the MPEG (Moving Picture Experts Group) 1 layer 2 standard with a sampling frequency of 48 KHz (hereinafter, this encoding process is referred to as MPEG 1 based encoding process) or an encoding process corresponding to ATRAC (adaptive transform acoustic coding) 1 (trademark) standard with a sampling frequency of 44.1 KHz (hereinafter, this encoding process is referred to as ATRAC 1 based encoding process).
The main process portion 13 receives PCM compressed music data that has been encoded from the encode card through the encode card driver process portion 15 and supplies the received data to the server through the network card driver process portion 14.
Next, the control data inputxe2x80x94output process portion 11 and the main process portion 13 will be described. The control data inputxe2x80x94output process portion 11 is composed of three programs (elements denoted by dotted line boxes in FIG. 1) that are a controlling portion 21, a network card input I/F (interface) 22, and a network card output I/F 23 and data areas necessary for executing those programs.
The network card input I/F 22 receives control data from the controlling terminal unit through the network card driver process portion 12 and outputs the received control data to the controlling portion 21. The network card output I/F 23 receives for example an error message from the main process portion 13 through the controlling portion 21 and outputs the received error message to the network card driver process portion 12.
The controlling portion 21 controls the network card input I/F 22 and the network card output I/F 23. In addition, the controlling portion 21 communicates with a controlling portion 31 of the main process portion 13.
Next, the structure of the main process portion 13 will be described. The main process portion 13 comprises seven programs (elements denoted by dotted boxes) that are a controlling portion 31, a network card inputxe2x80x94output I/F 32, an encode engine inputxe2x80x94output I/F 33, an encode engine inputxe2x80x94output I/F 34, an encode engine 35, an encode card inputxe2x80x94output I/F 36, and an encode card inputxe2x80x94output I/F 37 and data areas necessary for executing those programs.
The network card inputxe2x80x94output I/F 32 receives PCM non-compressed music data through the network card driver process portion 14 and outputs the received data to the controlling portion 31. In addition, the network card inputxe2x80x94output I/F 32 receives PCM compressed music data from the controlling portion 31 and outputs the data to the network card driver process portion 14.
The encode engine inputxe2x80x94output I/F 33 receives PCM non-compressed music data that is encoded corresponding to the ATRAC 1 based encoding process through the controlling portion 31 and outputs the received PCM non-compressed music data to the encode engine 35. In addition, the encode engine inputxe2x80x94output I/F 33 receives PCM compressed music data that has been encoded corresponding to the ATRAC 1 based encoding process from the encode engine 35 and outputs the received PCM compressed music data to the controlling portion 31.
The encode engine inputxe2x80x94output I/F 34 receives PCM non-compressed music data that is encoded corresponding to the MPEG 1 based encoding process through the controlling portion 31 and outputs the received PCM non-compressed music data to the encode engine 35. In addition, the encode engine inputxe2x80x94output I/F 34 receives PCM compressed music data that has been encoded corresponding to the MPEG 1 based encoding process from the encode engine 35 and outputs the received PCM compressed music data to the controlling portion 31.
The encode card inputxe2x80x94output I/F 36 receives PCM non-compressed music data that is encoded corresponding to the ATRAC 1 based encoding process through the controlling portion 31 and outputs the received PCM non-compressed music data to the encode card driver process portion 15. In addition, the encode card inputxe2x80x94output I/F 36 receives PCM compressed music data that has been encoded corresponding to the ATRAC 1 based encoding process from the encode card driver process portion 15 and outputs the received PCM compressed music data to the controlling portion 31.
The encode card inputxe2x80x94output I/F 37 receives PCM non-compressed music data that is encoded corresponding to the MPEG 1 based encoding process through the controlling portion 31 and outputs the received PCM non-compressed music data to the encode card driver process portion 15. In addition, the encode card inputxe2x80x94output I/F 37 receives PCM compressed music data that has been encoded corresponding to the MPEG 1 based encoding process from the encode card driver process portion 15 and outputs the received PCM compressed music data to the controlling portion 31.
As a software process, the encode engine 35 encodes PCM non-compressed music data supplied from the encode engine inputxe2x80x94output I/F 33 and the encode engine inputxe2x80x94output I/F 34 corresponding to the ATRAC 1 based encoding process and the MPEG 1 based encoding process and outputs the encoded PCM compressed music data to the encode engine inputxe2x80x94output I/F 33 and the encode engine inputxe2x80x94output I/F 34.
Although the encoder 10 is structured as described above, each program that composes the control data inputxe2x80x94output process portion 11 to the encode card driver process portion 15 is structured depending on predetermined hardware devices such as the network cards and the encode card of the encoder 10.
Thus, when the network cards and encode card of the encoder 10 are changed or extended corresponding to a transmission medium such as the Internet, a digital satellite broadcast, or a ground wave digital broadcast, each process portion should be restructured using time and cost.
In addition, for example, interface programs that control the network cards and encode card as hardware devices disposed in the encoder 10 (these interface programs are the network card input I/F 22, the network card output I/F 23, and the network card inputxe2x80x94output I/F 32 to the encode card inputxe2x80x94output I/F 37) and driver programs (these programs are the network card driver process portions 12 and 14 and the encode card driver process portion 15) are created by the manufacturer of the encoder 10.
However, when the function of a hardware device as one part of the encoder 10 is more improved, it will be ineffective for the manufacturer of the encoder 10 to create interface programs and driver programs for a hardware device assembled to the encoder 10. Thus, the manufacture of a hardware device creates a relevant program and supplies the created program and the hardware device to the manufacture of the encoder 10.
In such a situation, since the manufacture of the encoder 10 does not know the detail of a hardware device as a part of the encoder 10, it becomes difficult for the manufacture of the encoder 10 to create the controlling portion 21 and the controlling portion 31 that control the encoder 10. Thus, it becomes more difficult to change or extend the hardware device.
In addition, although the encoder 10 is structured as described above, when an abnormality takes place in a process of a program, the process of the program is temporarily terminated. Thus, it takes long time to restore the process from the abnormality.
The present invention is made from the above-described point of view. An object of the present invention is to allow a hardware device to be easily changed or extended.
Another object of the present invention is to allow a process of a program to be quickly restored from a failure state.
The present invention is a record medium for recording a computer controllable program, the program being disposed between a controlling portion and hardware, the program controlling the hardware corresponding to a message received from the controlling portion, the program comprising a first process portion for communicating with the controlling portion, a second process portion for being communicable with first hardware and second hardware, a third process portion for communicating with the first process portion and the second process portion and executing an interfacing process corresponding to the first hardware, and a fourth process portion for communicating with the first process portion and the second process portion and executing an interfacing process corresponding to the second hardware, wherein the first process portion outputs a message to one of the third process portion and the fourth process portion corresponding to a message received from the controlling portion.
The present invention is a storage medium for storing a computer controllable program, disposed between a controlling portion and hardware, for controlling the hardware corresponding to a message received from the controlling portion, the program containing capsulated process portions, wherein if an abnormality takes place in each process portion, it is initialized in one of a first path for initializing a first buffer for exchanging data with the hardware, a second path for unallocating a second buffer for exchanging data with the controlling portion, allocating the second buffer, initializing the second buffer, and initializing the first buffer, and a third path for unallocating the second buffer and unallocating the first buffer.